#pragma once
#include <vector>
#include <iostream>
#include "httplib.h"
#include <NXOpen/Part.hxx>

using namespace NXOpen;

class part_utils
{

private:


public:
	static httplib::Result part_utils::upload_file_status(std::string fileName, std::int64_t id, std::string host,
		int port, int component_status, int fileType);
	static void string_split(const std::string& str, char delimiter, std::vector<std::string>& out);
	static httplib::Result  uploadPart(
		std::string assemblyName,
		std::string uploadUrl,
		std::string host,
		int port);

	static int part_utils::downloadPart(
		std::string fileName,
		std::string downUrl,
		std::string host,
		int port
	);

	static void engineering_drawing(Part* workPart, Session* theSession, std::string assemblyFilePath, std::string engineeringDrawingPath);

	static void TraverseAssembly(Assemblies::Component* component);

	static void part_utils::write_csv(std::string bom_file_name);
	static void part_utils::generate_bom(NXOpen::Part* workPart, std::string bom_file_name);

	static void part_utils::generateZip(std::string sPath, std::string outFile);
};

